利用动态数码管模块、蜂鸣器以及按键实现篮球24秒计时器的功能,模拟现实中篮球比赛时的计时功能,动态数码管来显示倒计时的数字供大家观看时间,蜂鸣器在计时结束后发出响声提示大家时间到。
smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};u8secc=0,sec=24,min;u8DisplayData[8];sbitbeep=P1^5;voiddelay(u16 i){while(i--); }voiddatapros(){DisplayData[0]=smgduan[sec/10];DisplayData[1]=smgduan[sec%10];}voidDigDisplay(){u8 i;for(i=0;i<5;i ){ switch(i) { case(0): LSA=1;LSB=1;LSC=1; break; case(1): LSA=0;LSB=1;LSC=1; break; } P0=DisplayData[i]; delay(100); P0=0x00;}}voidkeypros(){if(k1==0){ delay(1000); if(k1==0){ int flag=0; while(1){ if(k3==0){ delay(1000); if(k3==0){ sec=24; } while(!k3); } if(k2==0){ delay(1000); if(k2==0){ TR0=!TR0; flag=~flag; } while(!k2); } datapros(); DigDisplay(); if(TR0==0&&flag==0){ break; } } } while(!k1);}}voidTimer0Init(){TMOD|=0X01; TH0=0Xd8;TL0=0Xf0;ET0=1;EA=1;TR0=1;}voidmain(){ while(1){ Timer0Init(); keypros();} }voidBeep(){int i=200000;while(i--){ beep=~beep; delay(100);}}
评论